#!/bin/bash

# 获取公网 IP
PUBLIC_IP=$(curl -s ifconfig.me)

# 检查是否成功获取公网 IP
if [ -z "$PUBLIC_IP" ]; then
  echo "无法获取公网 IP，请检查网络连接。"
  exit 1
fi

# 拉取最新的 IPFS 镜像
docker pull ipfs/go-ipfs:latest

# 初始化 IPFS 节点
docker run --name ipfs-init -v ./ipfs:/data/ipfs ipfs/go-ipfs:latest init

# 修改配置文件，添加 CORS 设置
sed -i "3s/\"HTTPHeaders\": {}/\"HTTPHeaders\": {/;3a\
      \"Access-Control-Allow-Origin\": [\"*\"],\
      \"Access-Control-Allow-Methods\": [\"PUT\", \"POST\"]\
    }" ./ipfs/config

# 运行 IPFS 容器
docker run -d --name ipfs -p 4001:4001 -p 8080:8080 -p 5001:5001 -v ./ipfs:/data/ipfs ipfs/go-ipfs:latest

# 停止并删除初始化容器
docker stop ipfs-init
docker rm ipfs-init

# 输出提示信息
echo "IPFS 已启动，公网 IP 为: $PUBLIC_IP"
echo "Web UI: http://$PUBLIC_IP:5001/webui"